home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / Bonus / Plasmatech / ptscp_eval.exe / %MAINDIR% / EvalD6 / Reg_PTShellControls.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-08-31  |  19.4 KB  |  572 lines

  1. unit Reg_PTShellControls; // Copyright ⌐ 1996-2001 Plasmatech Software Design. All rights reserved.
  2. {
  3.  Shell Control Pack
  4.  Version 1.6
  5.  
  6.  History
  7.  ===================================================================================================
  8.  V1.6   2Jul01 Delphi 6 release, added pane-selection menu items to TPTSplitter editor.
  9.  V1.5c 30Mar01 No changes.
  10.  V1.5b 12Dec00 No changes.
  11.  V1.5a 14May00 No changes.
  12.  V1.5   3Mar00 C++Builder 5 release.
  13.  V1.4a 15Dec99 Added new property editor for TPTFrameStyle type, with custom drawing.
  14.                Fixed some conditional compilation sections to match fix in PTCompVer.inc.
  15.  V1.4  14Sep99 Added support for Delphi 5 categories.
  16.  V1.3h 29Mar99 No changes.
  17.  V1.3g  1Dec98 No changes.
  18.  V1.3f 12Jul98 Delphi 4 release, no changes.
  19.  V1.3e 22Apr98 Fixed TPTFolderBrowseDlgEditor.GetVerb.
  20.  V1.3d 18Apr98 No changes.
  21.  V1.3c 16Mar98 C++Builder 3 support.
  22.  V1.3b  7Feb98 Changed default control page from 'Plasmatools' to 'Shell'.
  23.  V1.3a  7Jan98 No changes.
  24.  V1.3  28Nov97 No significant changes.
  25.  V1.2b 12Oct97 No changes.
  26.  V1.2a  5Oct97 No changes.
  27.  V1.2   6Sep97 Fixed problem with TPTSplitter editor being registered twice.
  28.  V1.1a  6Jul97 No changes.
  29.  V1.1  26Jun97 Added UPTComControls unit and TPTTreeView and TPTListView components.
  30.  V1.0c 31May97 Added TFilterProperty editor support to Delphi 3.
  31.                Added TFilterProperty editor to Filter property of TPTShellList (Delphi 2 & 3).
  32.  V1.0b 17May97 Changes to support Delphi 3.
  33.  V1.0a  1May97 No changes.
  34.  V1.0  21Apr97 Released version 1.0
  35. }
  36. {$INCLUDE PTCompVer.inc}
  37.  
  38. {$RANGECHECKS OFF} {$OVERFLOWCHECKS OFF} {$WRITEABLECONST OFF}
  39. {$BOOLEVAL OFF}    {$EXTENDEDSYNTAX ON}  {$TYPEDADDRESS ON}
  40.  
  41. interface
  42. uses UPTShell95, UPTShellUtils, UPTShellControls, UPTSysFolderDlg, UPTSplitter, UPTImageCombo,
  43.      UPTFrame, UPTTreeList, UPTShConsts,
  44.      FPTOpenDlg, FPTFolderBrowseDlg,
  45. {$IFNDEF CBUILDER} {$IFNDEF DELPHI6}
  46.      FiltEdit,
  47. {$ENDIF} {$ENDIF}
  48.      Dialogs, Forms;
  49.  
  50. procedure Register;
  51.  
  52. implementation
  53. uses Classes, Controls, TypInfo,
  54. {$IFDEF VCL50PLUS}
  55.      Graphics, Windows,
  56. {$ENDIF}
  57. {$IFDEF VCL60PLUS}
  58.      DesignIntf, DesignEditors, VCLEditors, PropertyCategories,
  59. {$ELSE}
  60.      DsgnIntf,
  61. {$ENDIF}
  62.      FPTShellLocatorEditor, FPTAbout;
  63.  
  64. const CTLPACK_PAGENAME  = 'Shell';
  65.       CTLPACK_NAME      = 'Shell Control Pack';
  66.       CTLPACK_COPYRIGHT = '1996-2001'#13#10;
  67.       CTLPACK_VERSION   = PTSHELLCONTROLS_VERSION;
  68.       CTLPACK_PATCH     = PTSHELLCONTROLS_PATCH;
  69.  
  70.  
  71. const STest = '&Test...';
  72.       SAbout = '&About...';
  73.       SSwapPanes = 'Swap &Panes';
  74.       SCenterPanes = '&Center Panes';
  75.       SActivatePane1 = 'Activate Pane &1';
  76.       SActivatePane2 = 'Activate Pane &2';
  77.  
  78.  
  79. {$IFDEF VCL50PLUS}
  80. {-- TPTFrameStyleProperty --------------------------------}
  81.  
  82. {$IFDEF VCL60PLUS}
  83. type TPTFrameStyleProperty = class(TEnumProperty, ICustomPropertyListDrawing, ICustomPropertyDrawing)
  84.      protected
  85.        function GetImageWidth(ACanvas: TCanvas): Integer;
  86.  
  87.        {-- ICustomPropertyDrawing --}
  88.        procedure PropDrawName(ACanvas: TCanvas; const ARect: TRect;
  89.          ASelected: Boolean);
  90.        procedure PropDrawValue(ACanvas: TCanvas; const ARect: TRect;
  91.          ASelected: Boolean);
  92.  
  93.        {-- ICustomPropertyListDrawing --}
  94.        procedure ListMeasureWidth(const Value: string; ACanvas: TCanvas; var AWidth: Integer);
  95.        procedure ListMeasureHeight(const Value: string; ACanvas: TCanvas;
  96.          var AHeight: Integer);
  97.        procedure ListDrawValue(const Value: string; ACanvas: TCanvas; const ARect: TRect;
  98.          ASelected: Boolean);
  99.      end;
  100. {$ELSE}
  101. type TPTFrameStyleProperty = class(TEnumProperty)
  102.      protected
  103.        function GetImageWidth(ACanvas: TCanvas): Integer;
  104.        procedure ListDrawValue(const Value: string; ACanvas: TCanvas; const ARect: TRect;
  105.          ASelected: Boolean); override;
  106.        procedure ListMeasureWidth(const Value: string; ACanvas: TCanvas; var AWidth: Integer);
  107.          override;
  108.        procedure PropDrawValue(ACanvas: TCanvas; const ARect: TRect; ASelected: Boolean); override;
  109.      end;
  110. {$ENDIF VCL60PLUS}
  111.  
  112.  
  113. function TPTFrameStyleProperty.GetImageWidth(ACanvas: TCanvas): Integer;
  114. begin
  115.   Result := ACanvas.TextWidth('X')*2;
  116. end;
  117.  
  118. procedure TPTFrameStyleProperty.ListDrawValue(const Value: string; ACanvas: TCanvas;
  119.   const ARect: TRect; ASelected: Boolean);
  120. var
  121.   OrdValue: TPTFrameStyle;
  122.   R: TRect;
  123.   ImgWidth: Integer;
  124. begin
  125.   ImgWidth := GetImageWidth(ACanvas);
  126.   {$IFDEF VCL60PLUS}
  127.     DefaultPropertyListDrawValue(Value, ACanvas, Rect(ARect.Left+ImgWidth, ARect.Top, ARect.Right,
  128.       ARect.Bottom), ASelected);
  129.   {$ELSE}
  130.     inherited ListDrawValue(Value, ACanvas, Rect(ARect.Left+ImgWidth, ARect.Top, ARect.Right,
  131.       ARect.Bottom), ASelected);
  132.   {$ENDIF VCL60PLUS}
  133.  
  134.   R := Rect(ARect.Left+2, ARect.Top+2, ARect.Left+ImgWidth -2, ARect.Bottom -2);
  135.  
  136.   ACanvas.Brush.Color := clBtnFace;
  137.   ACanvas.FillRect(Rect(ARect.Left, ARect.Top, ARect.Left+ImgWidth, ARect.Bottom));
  138.  
  139.   OrdValue := TPTFrameStyle(GetEnumValue(TypeInfo(TPTFrameStyle), Value));
  140.  
  141.   UPTFrame.DrawFrame(OrdValue, ACanvas, R);
  142. end;
  143.  
  144. procedure TPTFrameStyleProperty.ListMeasureWidth(const Value: string; ACanvas: TCanvas;
  145.   var AWidth: Integer);
  146. begin
  147.   Inc(AWidth, GetImageWidth(ACanvas));
  148. end;
  149.  
  150. {$IFDEF VCL60PLUS}
  151. procedure TPTFrameStyleProperty.ListMeasureHeight(const Value: string; ACanvas: TCanvas; var AHeight: Integer);
  152. begin
  153.   // this space intenionally left blank
  154. end;
  155. {$ENDIF VCL60PLUS}
  156.  
  157. {$IFDEF VCL60PLUS}
  158. procedure TPTFrameStyleProperty.PropDrawName(ACanvas: TCanvas; const ARect: TRect;
  159.   ASelected: Boolean);
  160. begin
  161.   DefaultPropertyDrawName(Self, ACanvas, ARect);
  162. end;
  163. {$ENDIF VCL60PLUS}
  164.  
  165. procedure TPTFrameStyleProperty.PropDrawValue(ACanvas: TCanvas; const ARect: TRect;
  166.   ASelected: Boolean);
  167. begin
  168.   ListDrawValue(GetVisualValue, ACanvas, ARect, ASelected);
  169. end;
  170. {$ENDIF VCL50PLUS}
  171.  
  172.  
  173. {-- TPTShellLocatorEditor --------------------------------}
  174.  
  175. { This is the property editor for design-time pidls. }
  176. type TPTShellLocatorEditor = class(TClassProperty)
  177.        procedure Edit; override;
  178.        function GetAttributes: TPropertyAttributes; override;
  179.      end;
  180.  
  181. function EditPidl( o: TPTShellLocator ): Boolean;
  182. var f: TFrmShellLocatorEditor;
  183. begin
  184.   f := TFrmShellLocatorEditor.Create(Application);
  185.   try
  186.     f.Locator := o;
  187.     result := (f.ShowModal = mrOk);
  188.   finally
  189.     f.Free;
  190.   end;
  191. end;
  192.  
  193. procedure TPTShellLocatorEditor.Edit;
  194. begin
  195.   if EditPidl( TPTShellLocator(GetOrdValue) ) then Modified;
  196. end; {TPTShellLocatorEditor.Edit}
  197.  
  198. function TPTShellLocatorEditor.GetAttributes: TPropertyAttributes;
  199.   begin result := [paDialog, paReadOnly]; end;
  200. {=========================================================}
  201.  
  202.  
  203.  
  204. {-- TCSIDLEditor -----------------------------------------}
  205. type TCSIDLEditor = class(TEnumProperty)
  206.        procedure GetValues( proc: TGetStrProc ); override;
  207.      end;
  208.  
  209. procedure TCSIDLEditor.GetValues( proc: TGetStrProc );
  210. var i: Integer;
  211.     enumType: PTypeInfo;
  212.     s: String;
  213. begin
  214.   enumType := GetPropType;
  215.   with GetTypeData(enumType)^ do
  216.     for i := MinValue to MaxValue do
  217.     begin
  218.       s := GetEnumName(enumType, i);
  219.       if Pos('_',s)=0 then
  220.         Proc(s);
  221.     end;
  222. end; {TCSIDLEditor.GetValues}
  223. {=========================================================}
  224.  
  225.  
  226. {-- TPTAboutEditor ---------------------------------------}
  227. type TPTAboutEditor = class(TDefaultEditor)
  228.        procedure ExecuteVerb(index: Integer);  override;
  229.        function GetVerb(index: Integer): String;  override;
  230.        function GetVerbCount: Integer;  override;
  231.      end;
  232.  
  233. procedure TPTAboutEditor.ExecuteVerb(index: Integer);
  234.   begin FPTAbout.TPTFrmAbout.ExecuteCtl( CTLPACK_NAME, CTLPACK_COPYRIGHT, Component.ClassName, CTLPACK_VERSION, CTLPACK_PATCH ); end;
  235.  
  236. function TPTAboutEditor.GetVerb(index: Integer): String;
  237.   begin result := SAbout; end;
  238.  
  239. function TPTAboutEditor.GetVerbCount: Integer;
  240.   begin result := 1; end;
  241. {== END TPTAboutEditor ===================================}
  242.  
  243.  
  244. {-- TPTSysFolderDlgEditor --------------------------------}
  245. type TPTSysFolderDlgEditor = class(TDefaultEditor)
  246.        procedure ExecuteVerb(index: Integer);  override;
  247.        function GetVerb(index: Integer): String;  override;
  248.        function GetVerbCount: Integer;  override;
  249.      end;
  250.  
  251. procedure TPTSysFolderDlgEditor.ExecuteVerb(index: Integer);
  252. begin
  253.   case index of
  254.     0: FPTAbout.TPTFrmAbout.ExecuteCtl( CTLPACK_NAME, CTLPACK_COPYRIGHT, Component.ClassName, CTLPACK_VERSION, CTLPACK_PATCH );
  255.     1: (Component as TPTSysFolderDlg).Execute;
  256.   end;
  257. end;
  258.  
  259. function TPTSysFolderDlgEditor.GetVerb(index: Integer): String;
  260. begin
  261.   case index of
  262.     0: result := SAbout;
  263.     1: result := STest;
  264.   else
  265.     result := '';
  266.   end;
  267. end;
  268.  
  269. function TPTSysFolderDlgEditor.GetVerbCount: Integer;
  270.   begin result := 2; end;
  271. {=========================================================}
  272.  
  273.  
  274. {-- TPTFolderBrowseDlgEditor -----------------------------}
  275. type TPTFolderBrowseDlgEditor = class(TDefaultEditor)
  276.        procedure ExecuteVerb(index: Integer);  override;
  277.        function GetVerb(index: Integer): String;  override;
  278.        function GetVerbCount: Integer;  override;
  279.      end;
  280.  
  281. procedure TPTFolderBrowseDlgEditor.ExecuteVerb(index: Integer);
  282. begin
  283.   case index of
  284.     0: FPTAbout.TPTFrmAbout.ExecuteCtl( CTLPACK_NAME, CTLPACK_COPYRIGHT, Component.ClassName, CTLPACK_VERSION, CTLPACK_PATCH );
  285.     1: (Component as TPTFolderBrowseDlg).Execute;
  286.   end;
  287. end;
  288.  
  289. function TPTFolderBrowseDlgEditor.GetVerb(index: Integer): String;
  290. begin
  291.   case index of
  292.     0: result := SAbout;
  293.     1: result := STest;
  294.   else result := '';
  295.   end;
  296. end;
  297.  
  298. function TPTFolderBrowseDlgEditor.GetVerbCount: Integer; begin result := 2; end;
  299. {=========================================================}
  300.  
  301.  
  302. {-- TPTOpenDlgEditor -------------------------------------}
  303. type TPTOpenDlgEditor = class(TDefaultEditor)
  304.        procedure ExecuteVerb(index: Integer);  override;
  305.        function GetVerb(index: Integer): String;  override;
  306.        function GetVerbCount: Integer;  override;
  307.      end;
  308.  
  309. procedure TPTOpenDlgEditor.ExecuteVerb(index: Integer);
  310. begin
  311.   case index of
  312.     1: (Component as TPTOpenDlg).Execute;
  313.     0: FPTAbout.TPTFrmAbout.ExecuteCtl( CTLPACK_NAME, CTLPACK_COPYRIGHT, Component.ClassName, CTLPACK_VERSION, CTLPACK_PATCH );
  314.   end;
  315. end;
  316.  
  317. function TPTOpenDlgEditor.GetVerb(index: Integer): String;
  318. begin
  319.   case index of
  320.     1: result := STest;
  321.     0: result := SAbout;
  322.   else result := '';
  323.   end;
  324. end;
  325.  
  326. function TPTOpenDlgEditor.GetVerbCount: Integer;  begin result := 2; end;
  327. {=========================================================}
  328.  
  329.  
  330. {-- TPTSaveDlgEditor -------------------------------------}
  331. type TPTSaveDlgEditor = class(TDefaultEditor)
  332.        procedure ExecuteVerb(index: Integer);  override;
  333.        function GetVerb(index: Integer): String;  override;
  334.        function GetVerbCount: Integer;  override;
  335.      end;
  336.  
  337. procedure TPTSaveDlgEditor.ExecuteVerb(index: Integer);
  338. begin
  339.   case index of
  340.     1: (Component as TPTSaveDlg).Execute;
  341.     0: FPTAbout.TPTFrmAbout.ExecuteCtl( CTLPACK_NAME, CTLPACK_COPYRIGHT, Component.ClassName, CTLPACK_VERSION, CTLPACK_PATCH );
  342.   end;
  343. end;
  344.  
  345. function TPTSaveDlgEditor.GetVerb(index: Integer): String;
  346. begin
  347.   case index of
  348.     1: result := STest;
  349.     0: result := SAbout;
  350.   else result := '';
  351.   end;
  352. end;
  353.  
  354. function TPTSaveDlgEditor.GetVerbCount: Integer;  begin result := 2; end;
  355. {=========================================================}
  356.  
  357.  
  358.  
  359. {-- TPTSplitterEditor ------------------------------------}
  360. type TPTSplitterEditor = class(TDefaultEditor)
  361.        procedure ExecuteVerb(index: Integer);  override;
  362.        function GetVerb(index: Integer): String;  override;
  363.        function GetVerbCount: Integer;  override;
  364.      end;
  365.  
  366. procedure TPTSplitterEditor.ExecuteVerb(index: Integer);
  367. var s: TPTSplitter;
  368. begin
  369.   s := Component as TPTSplitter;
  370.   case index of
  371.     0: FPTAbout.TPTFrmAbout.ExecuteCtl( CTLPACK_NAME, CTLPACK_COPYRIGHT, Component.ClassName, CTLPACK_VERSION, CTLPACK_PATCH );
  372.     1: s.Position := (s.Extent - s.SplitterWidth) div 2;
  373.     2: s.SwapPanes(TRUE);
  374.     3: s.SetActivePane(s.Pane1.Index);
  375.     4: s.SetActivePane(s.Pane2.Index);
  376.   end;
  377. end; {TPTSplitterEditor.ExecuteVerb}
  378.  
  379. function TPTSplitterEditor.GetVerb(index: Integer): String;
  380. begin
  381.   case index of
  382.     0: result := SAbout;
  383.     1: result := SCenterPanes;
  384.     2: result := SSwapPanes;
  385.     3: result := SActivatePane1;
  386.     4: result := SActivatePane2;
  387.   else result := '';
  388.   end;
  389. end; {TPTSplitterEditor.GetVerb}
  390.  
  391. function TPTSplitterEditor.GetVerbCount: Integer;
  392.   begin result := 5; end;
  393. {== END TPTSplitterEditor ================================}
  394.  
  395.  
  396. {-- TOpenDialogEditor ------------------------------------}
  397. type TOpenDialogEditor = class(TDefaultEditor)
  398.        procedure ExecuteVerb(index: Integer);  override;
  399.        function GetVerb(index: Integer): String;  override;
  400.        function GetVerbCount: Integer;  override;
  401.      end;
  402.  
  403. procedure TOpenDialogEditor.ExecuteVerb(index: Integer);
  404. begin
  405.   (Component as TOpenDialog).Execute;
  406. end;
  407.  
  408. function TOpenDialogEditor.GetVerb(index: Integer): String;
  409. begin
  410.   case index of
  411.     0: result := STest;
  412.   else result := '';
  413.   end;
  414. end; {TOpenDialogEditor.GetVerb}
  415.  
  416. function TOpenDialogEditor.GetVerbCount: Integer;
  417.   begin result := 1; end;
  418. {== END TOpenDialogEditor ================================}
  419.  
  420.  
  421. {$IFDEF VCL50}
  422. type
  423.   TPlasmatechCategory = class(TPropertyCategory)
  424.   public
  425.     class function Name: String; override;
  426.     class function Description: String; override;
  427.   end; {TPlasmatechCategory}
  428.  
  429. { TPlasmatechCategory }
  430. class function TPlasmatechCategory.Name: String;
  431. begin
  432.   Result := ' Plasmatech';
  433. end;
  434.  
  435. class function TPlasmatechCategory.Description: String;
  436. begin
  437.   Result := 'Items added by Plasmatech controls';
  438. end;
  439.  
  440. type
  441.   PLASMATECH_CATEGORY = TPlasmatechCategory;
  442.   LEGACY_CATEGORY = TLegacyCategory;
  443. {$ENDIF}
  444.  
  445. {$IFDEF VCL60PLUS}
  446. const
  447.   PLASMATECH_CATEGORY = ' Plasmatech';
  448.   LEGACY_CATEGORY: string = sLegacyCategoryName;
  449. {$ENDIF VCL60PLUS}
  450.  
  451.  
  452. {__________________________________________________________________________________________________}
  453. procedure RegisterComponentEditors( components: array of TComponentClass;  editor: TComponentEditorClass );
  454. var i: Integer;
  455. begin
  456.   for i := Low(components) to High(components) do
  457.     RegisterComponentEditor( components[i], editor );
  458. end;
  459.  
  460. procedure Register;
  461. begin
  462.   RegisterComponents( CTLPACK_PAGENAME, [TPTShellTree, TPTShellList, TPTShellCombo,
  463.                                          TPTOpenDlg, TPTSaveDlg, TPTFolderBrowseDlg,
  464.                                          TPTFrame, TPTGroup,
  465.                                          TPTSplitter, TPTImageCombo,
  466.                                          TPTSysFolderDlg,
  467.                                          TPTCombobox,
  468.                                          TPTTreeView, TPTListView] );
  469.   RegisterNoIcon( [TPTPane] );
  470.  
  471.   RegisterPropertyEditor( TypeInfo(TPTShellLocator), nil, '', TPTShellLocatorEditor );
  472.   RegisterPropertyEditor( TypeInfo(TCSIDL), nil, '', TCSIDLEditor );
  473.  
  474.   RegisterComponentEditor( TPTSysFolderDlg, TPTSysFolderDlgEditor );
  475.   RegisterComponentEditor( TPTFolderBrowseDlg, TPTFolderBrowseDlgEditor );
  476.   RegisterComponentEditor( TPTOpenDlg, TPTOpenDlgEditor );
  477.   RegisterComponentEditor( TPTSaveDlg, TPTSaveDlgEditor );
  478.   RegisterComponentEditor( TPTSplitter, TPTSplitterEditor );
  479.  
  480.   RegisterComponentEditors( [TPTShellTree, TPTShellList, TPTShellCombo,
  481.                              TPTFrame, TPTGroup,
  482.                              TPTImageCombo, TPTCombobox,
  483.                              TPTTreeView, TPTListView],
  484.                             TPTAboutEditor );
  485.  
  486.   RegisterComponentEditor( TOpenDialog, TOpenDialogEditor );
  487.  
  488. {$IFNDEF CBUILDER} {$IFNDEF DELPHI6}
  489.   RegisterPropertyEditor(TypeInfo(String), TPTFileDlg, 'Filter', TFilterProperty);
  490.   RegisterPropertyEditor(TypeInfo(String), TPTShellList, 'Filter', TFilterProperty);
  491. {$ENDIF} {$ENDIF}
  492.  
  493. {$IFDEF VCL50PLUS}
  494.   RegisterPropertyEditor(TypeInfo(TPTFrameStyle), nil, '', TPTFrameStyleProperty);
  495.  
  496.   // TPTShellCombo
  497.   RegisterPropertiesInCategory(PLASMATECH_CATEGORY, TPTCustomShellCombo,
  498.     ['ShellTree', 'ShellList', 'IndentPixels', 'Options']);
  499.  
  500.   // TPTShellList
  501.   RegisterPropertiesInCategory(PLASMATECH_CATEGORY, TPTCustomShellList,
  502.     ['Options', 'Folder', 'FileFilter', 'HeaderSortIconOption',
  503.      'OnAddItem', 'OnDeleteItem', 'OnPopupHint', 'OnDblClickOpen', 'OnCustomDrawSh',
  504.      'OnCustomDrawShEx', 'OnFillComplete', 'OnFillStart', 'OnFolderChanged']);
  505.  
  506.   // TPTShellTree
  507.   RegisterPropertiesInCategory(PLASMATECH_CATEGORY, TPTCustomShellTree,
  508.     ['SelectedItem', 'SelectedFolder', 'SelectedPathName', 'ShTreeData', 'BaseFolder',
  509.      'ShellList', 'Options', 'OnAddItem', 'OnDeleteItem', 'OnInsertItem', 'OnPopupHint',
  510.      'OnCustomDrawSh', 'OnCustomDrawShEx', 'OnFillComplete', 'OnFillStart']);
  511.  
  512.   // TPTFileDlg
  513.   RegisterPropertiesInCategory(PLASMATECH_CATEGORY, TPTFileDlg,
  514.     ['DefaultExt', 'Title', 'Options', 'Filter', 'FilterIndex', 'FormWidth', 'FormHeight',
  515.      'FormWindowState', 'FormSplitterPos', 'HelpContext', 'HistoryList', 'InitialDir',
  516.      'OnAddListItem', 'OnAddTreeItem', 'OnAddComboItem', 'OnInitialized', 'OnLvCustomDrawSh',
  517.      'OnLvCustomDrawShEx', 'OnTvCustomDrawSh', 'OnTvCustomDrawShEx', 'OnFormClose', 'OnFormShow',
  518.      'OnFolderChanged', 'OnSelectionChanged', 'OnTypeChanged']);
  519.  
  520.   // TPTOpenDlg
  521.   // TPTSaveDlg
  522.  
  523.   // TPTFolderBrowseDlg
  524.   RegisterPropertiesInCategory(PLASMATECH_CATEGORY, TPTFolderBrowseDlg,
  525.     ['Title', 'FormWidth', 'FormHeight', 'FormWindowState', 'BaseFolder', 'Options', 'OnAddItem',
  526.      'OnFormClose', 'OnFormShow', 'OnSelChange', 'OnInitialized', 'OnTvCustomDrawSh',
  527.      'OnTvCustomDrawShEx']);
  528.  
  529.   // TPTFrame
  530.   RegisterPropertiesInCategory(PLASMATECH_CATEGORY, TPTCustomFrame,
  531.     ['Alignment', 'DefaultDrawing', 'FrameSpace', 'FrameStyle', 'OnPaint']);
  532.  
  533.   // TPTGroup
  534.   RegisterPropertiesInCategory(PLASMATECH_CATEGORY, TPTCustomGroup,
  535.     ['Alignment', 'DefaultDrawing', 'FrameSpace', 'FrameStyle', 'OnPaint']);
  536.  
  537.   // TPTSplitter
  538.   RegisterPropertiesInCategory(PLASMATECH_CATEGORY, TPTSplitter,
  539.     ['FullDragMode', 'Proportional', 'Position', 'Style', 'SplitterWidth', 'Pane1Color',
  540.      'Pane1FrameStyle', 'Pane1MinSize', 'Pane2Color', 'Pane2FrameStyle', 'Pane2MinSize',
  541.      'OnChange', 'OnResize', 'OnSplitterDrag', 'OnSplitterDrop']);
  542.  
  543.   // TPTComboBox
  544.   RegisterPropertiesInCategory(PLASMATECH_CATEGORY, TPTCustomCombobox,
  545.     ['OnDeleteItem', 'OnCloseUp', 'OnSelEndCancel', 'OnSelEndOk']);
  546.  
  547.   // TPTImageCombo
  548.   RegisterPropertiesInCategory(PLASMATECH_CATEGORY, TPTCustomImageCombo,
  549.     ['AutoSizeHeight', 'IndentPixels', 'ImageList']);
  550.  
  551.   // TPTSysFolderDlg
  552.   RegisterPropertiesInCategory(PLASMATECH_CATEGORY, TPTSysFolderDlg,
  553.     ['Domain', 'Options', 'Title', 'OnInitialized', 'OnSelChanged']);
  554.  
  555.   // TPTListView
  556.   RegisterPropertiesInCategory(PLASMATECH_CATEGORY, TPTCustomListView,
  557.     ['HeaderSortDisplayMode', 'HeaderDefaultDrawing',
  558.      'OnPTCustomDraw', 'OnPTCustomDrawEx', 'OnItemContextMenu']);
  559.  
  560.   // TPTTreeView
  561.   RegisterPropertiesInCategory(PLASMATECH_CATEGORY, TPTCustomTreeView,
  562.     ['OnPTCustomDraw', 'OnPTCustomDrawEx', 'OnNodeContextMenu']);
  563.  
  564.   // General
  565.   RegisterPropertiesInCategory(LEGACY_CATEGORY,
  566.     ['OnCustomDrawSh', 'OnCustomDrawShEx']);
  567. {$ENDIF}
  568. end;
  569.  
  570. end.
  571.  
  572.